SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO


CREATE Procedure [dbo].[SP_TTPROC_INTE_U52]
/*---------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                  --*/    
/*---Cliente              : OFISIS S.A.                  --*/    
/*---Sistema              : Tesoreria                    --*/    
/*---M÷dulo               : Empresa                      --*/    
/*---Programa             : Aplicaci¸n O/Compras a Facs. --*/    
/*---Script               : ttproc_i.sql                 --*/    
/*---Nombre SP            : SP_TTPROC_INTE_U52           --*/    
/*---Desarrollado por     : Javier Flores A.             --*/    
/*---Fecha Creaci÷n       : 02/08/1999                   --*/    
/*---Base Datos           : Microsoft Sql Server         --*/    
/*---Versi÷n              : 7.0                          --*/    
/*---Invoca a SP          :                              --*/    
/*---------------------------------------------------------*/    
/*---------------------------------------------------------*/    
/*---Modificado 1 por     : Reynaldo Menacho L. 		--*/    
/*---Fecha Modificaci÷n   : 21/03/2002                	--*/     
/*---Detalle Modificaci÷n : Asignaci½n de Cuenta contable de la provisi½n del documento	--*/    
/*---------------------------------------------------------*/    
/*---------------------------------------------------------*/    
/*---Modificado 2 por     :  Carlos Marquez Escobar   --*/    
/*---Fecha Modificaci÷n   : 25/08/2004                   --*/     
/*---Detalle Modificaci÷n : Centos de Costo Para Gancia o Perdida--*/    
/*---------------------------------------------------------*/    
/*---------------------------------------------------------*/    
/*---Modificado 3 por     :  Carlos Marquez Escobar       --*/    
/*---Fecha Modificaci÷n   : 21/11/2005                    --*/     
/*---Detalle Modificaci÷n : Considerar NCRs en el detalle 2--*/    
/*---------------------------------------------------------*/    
/*---------------------------------------------------------*/    
/*---Modificado 3 por     : E.G.T                         --*/    
/*---Fecha Modificaci÷n   : 11/07/2007                    --*/     
/*---Detalle Modificaci÷n : Extorno Aplicacion anticpo proveedor--*/    
/*---------------------------------------------------------*/    
/*---------------------------------------------------------*/    
/*---Comentarios                                         --*/    
/*---                                                    --*/    
/*---                                                    --*/    
/*---------------------------------------------------------*/    
    
/*---------------------------------------------------------*/    
/*---Drop Proc SP_TTPROC_INTE_U52                        --*/    
/*---Grant all on SP_TTPROC_INTE_U52 to public           --*/     
/*--- SP_TTPROC_INTE_U52 '01' , '001', '02100015', NULL, 2004, 3, '2004/03/30', '02100015', 'N'    --*/    
/*---------------------------------------------------------*/    
@ISCO_EMPR  TD_VC_002,    /* Codigo de la Empresa */    
@ISCO_USUA_MODI   TD_VC_008,  
@ISPA_0001     TD_VC_020,  /* Codigos de prov,bnco,caja,etc.. */    
@ISPA_0002      TD_VC_020,  /* Numero cnta(Caso Banco u otros)  */    
@ISPA_0003      TD_VC_020,      
@INPA_ANNO     INTEGER, /* Parametro AÏo  */    
@INPA_MESE     INTEGER, /* Parametro Mes  */    
@IDPA_FECH     TD_DT_001, /* Parametro Fecha  */    
@ISNU_ASTO  TD_VC_020,    
@ISST_INTE  TD_VC_001    
as    
    
Declare    
    
/* Declaro variables para el cursor de la tabla TMDOCU_PROV y TDTIPO_OPER - CABECERA */    
    
/* Descripciön TDTIPO_OPER */    
@CSCO_TIPO_OPER TD_VC_003, /* C”digo de Operaci”n del M”dulo de Finanzas */    
@CNNU_CORR       TD_IN_001, /* Correlativo de Detalle de la Operaci”n de Finanzas */    
@CNNU_DETA       TD_IN_001, /* Indicador si la Tabla de Finanzas tiene 2do. detalle */    
@CSCO_OPRC_CNTB TD_VC_003, /* C”digo de Operaci”n o Libro Contable */    
@CNID_ASTO       TD_IN_001, /* Identificador de Asiento,una Operac”n de Finanzas puede tener varios asientos */    
@CSCO_CNTA       TD_VC_020, /* C”digo de Cuenta Contable, debe existir en el m”dulo contable */    
@CSIN_CNTA_MONE TD_VC_001_SINO, /* Indicador si la cuenta viene de otra tabla, como Ctas.Ctes, Centro de Costo */    
@CSCO_MONE_CNTA TD_VC_003, /* C”digo de Moneda de la Cuenta */    
@CSTI_AUXI_CNTA TD_VC_001, /* Tipo de Auxiliar de la Cuenta Contable, Valido para la interfase */    
@CSTI_DOCU_CNTA TD_VC_003, /* Tipo o C”digo del Documento, Para la interfase solo indica si lleva o no, Vale el que viene */  
   
@CSTI_DOCU_REFE TD_VC_001_SINO, /* Indicador si lleva documento de referencia 'S' Si, 'N' no */    
@CSTI_MOVI       TD_VC_003, /* Tipo de Operaci”n Contable 'C' Cargo, 'A' Abono */    
@CNIM_INTE_0001 TD_IN_001, /* Importe 1, el monto del registro contable se puede armar */    
@CSOP_ARIT_0001 TD_VC_001, /* Operaci”n Aritmetica de 'S' Suma o 'R' Resta */    
@CNIM_INTE_0002 TD_IN_001, /* Importe 2, el monto del registro contable se puede armar */    
@CSOP_ARIT_0002 TD_VC_001, /* Operaci”n Aritmetica de 'S' Suma o 'R' Resta */    
@CNIM_INTE_0003 TD_IN_001, /* Importe 3, el monto del registro contable se puede armar */    
@CSDE_GLOS_INTE TD_VC_080, /* Glosa especial que prevalece sobre las primeras observaciones al documento */    
    
/* Descripci”n TMDOCU_PROV */    
@CSCO_MONE_MOVI TD_VC_003, /* Moneda en la que se genero la operaci”n de Finanzas */    
@CNFA_TIPO_CAMB TD_NU_016_004,/* Factor de Cambio de la Moneda utilizada en la operaci”n de Finanzas */    
@CSCO_AUXI_CABE TD_VC_020, /* C”digo de Auxiliar, es decir del Provvedor, Cliente que genero la operaci”n de Finanzas */    
@CSTI_DOCU_CABE TD_VC_003, /* Tipo de Documento de la operaci”n de Finanzas */    
@CSNU_DOCU_CABE TD_VC_020, /* Nomero de Documento de la operaci”n de Finanzas */    
@CDFE_EMIS_CABE TD_DT_001, /* Fecha de Emisi”n del Documento de la operaci”n de Finanzas */    
@CSTI_DORE_CABE TD_VC_003, /* Tipo de Documento de Referencia de la operaci”n de Finanzas */    
@CSNU_DORE_CABE TD_VC_020, /* Nomero de Documento de Referencia de la operaci”n de Finanzas */    
@CNIM_CABE_0001 TD_NU_016_004,  /* Importe 1, Ejm. Importe Bruto. */    
@CNIM_CABE_0002 TD_NU_016_004,  /* Importe 2, Ejm. Gastos Financieros */    
@CNIM_CABE_0003 TD_NU_016_004,  /* Importe 3, Ejm. Mora */    
@CNIM_CABE_0004 TD_NU_016_004,  /* Importe 4, Ejm. Flete */    
@CNIM_CABE_0005 TD_NU_016_004,  /* Importe 5, Ejm. Descuento */    
@CNIM_CABE_0006 TD_NU_016_004,  /* Importe 6, Ejm. Impuesto 1 */    
@CNIM_CABE_0007 TD_NU_016_004,  /* Importe 7, Ejm. Impuesto 2 */    
@CNIM_CABE_0008 TD_NU_016_004,  /* Importe 8, Ejm. Impuesto 3 */    
@CNIM_CABE_0009 TD_NU_016_004,  /* Importe 9, Ejm. Importe Total */    
@CNIM_CABE_0010 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_CABE_0011 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_CABE_0012 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_CABE_0013 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_CABE_0014 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_CABE_0015 TD_NU_016_004,  /* Importe para futuro uso */    
@CSDE_GLOS_CABE TD_VC_100, /* Primera observacion de la operaci”n de Finanzas, solo se usa cuando DE_GLOS_INTE = null */    
    
/* Declaro variables para el cursor de la tabla TDDISP_CCOS - DETALLE */    
    
@CSCO_AUXI_DETA TD_VC_020, /* C”digo de Auxiliar, Ejm: Centro de Costo */    
@CNIM_DETA_0001 TD_NU_016_004,  /* Importe 1, Ejm. Importe Distribuido */    
@CNIM_DETA_0002 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0003 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0004 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0005 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0006 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0007 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0008 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0009 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0010 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0011 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0012 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0013 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0014 TD_NU_016_004,  /* Importe para futuro uso */    
@CNIM_DETA_0015 TD_NU_016_004,  /* Importe para futuro uso */    
    
/* Variables de Trabajo   */    
    
@VSVA_QUIE       TD_VC_050, /* Quiebre del Nomero de Asiento Contable */    
@VNSE_ASTO       TD_IN_001,  /* Secuencial de registros en un Asiento */    
@VNIM_VARI_0001 TD_NU_016_004,  /* Valor de la Variable 1, para armar el Importe */    
@VNIM_VARI_0002 TD_NU_016_004,  /* Valor de la Variable 2, para armar el Importe */    
@VNIM_VARI_0003 TD_NU_016_004,  /* Valor de la Variable 3, para armar el Importe */    
@VNNU_FETC_0001   TD_IN_001,   /* Status del 1er. cursor */    
@VNNU_FETC_0002 TD_IN_001,   /* Status del 2do. cursor */    
    
/* Variables de la tabla de interfase contable TIMVTO_CNTB */    
    
@VNNU_ANNO  TD_IN_001, /* Nomero de A?o, se obtiene de la fecha de emisi”n de la operaci”n de Finanzas */    
@VNNU_MESE  TD_IN_001, /* Nomero de Mes, se obtiene de la fecha de emisi”n de la operaci”n de Finanzas */    
@VSNU_ASTO  TD_VC_010, /* Nomero Asiento Generado, secuencial por identificador de interfase */    
@VNNU_SECU  TD_IN_001,  /* Nomero secuencial de cada registro de un asiento */    
@VDFE_ASTO_CNTB TD_DT_001, /* Fecha del Asiento, se obtiene de la fecha de emisi”n de la operaci”n de Finanzas */    
@VSCO_CNTA_EMPR TD_VC_020, /* C”digo de la Cuenta Contable a nivel An~litico */    
@VSTI_AUXI_EMPR TD_VC_001, /* Tipo de Auxiliar Contable Ejm.'C' Clientes, 'P' Proveedor , etc. */    
@VSCO_AUXI_EMPR TD_VC_020, /* C”digo del Auxiliar Contable, Ejm. C”digo del Proveedor */     
@VSCO_DOCU  TD_VC_003, /* C”digo o Tipo de Documento, Ejm. FAC Factura, BOL Boleta */    
@VSNU_DOCU  TD_VC_020, /* Nomero de Documento */    
@VDFE_DOCU  TD_DT_001, /* Fecha de Emisi”n del Documento */    
@VDFE_VENC  TD_DT_001, /* Fecha de Venc. del Documento */    
    
@VSTI_CAMB  TD_VC_003,  /* Tipo de Cambio 'P' Pactado, 'V' Ventas, 'C' Compra */    
@VSCO_MONE  TD_VC_003, /* C”digo de Moneda, 'SOL' Soles, 'DOL' D”lares */     
@VNFA_CAMB  TD_NU_016_004,/* Factor de Cambio, SOL = 1.000, 'DOL' lo que indica el documento */    
@VSTI_OPER  TD_VC_003, /* Tipo de Operaci”n 'C' Cargo, 'A' Abono */    
@VSDE_GLOS  TD_VC_080, /* Glosa del registro contable */    
@VSCO_DOCU_REFE TD_VC_003, /* C”digo o Tipo de Documento Contable de Referencia, Opcional*/    
@VSNU_DOCU_REFE TD_VC_020, /* Nomero de Documento de Referencia, Opcional */    
@VNIM_MVTO_ORIG TD_NU_016_004, /* Importe en moneda origen, soles o d”lares segon sea el caso */    
@VNIM_MVTO_CNTB TD_NU_016_004, /* Importe en moneda del sistema por lo general soles */    
@VSNO_GIRA  TD_VC_050, /* Nombre a quien se le gira el cheque, para el caso del chque voucher */    
@CSNO_GIRA  TD_VC_050, /* Nombre a quien se le gira el cheque, para el caso del chque voucher */    
@VSOR_TRAB  TD_VC_020, /* Orden de Trabajo o Actividad, opcional */    
@VSSI_MVTO_CNTB TD_VC_003, /* Situaci”n del Movimiento 'I' Activo 'E' Eliminado */    
@VSSI_MVTO_DOCU TD_VC_001, /* Situaci”n del Documento 'S' Cancelado 'E' No Cancelado */    
@VSNU_ASTO_ORIG TD_VC_010, /* Nomero de asiento origen para el caso de asientos generados */    
@VSST_OTRS  TD_VC_020, /* Para usos futuros */    
@VSCO_USUA  TD_VC_008, /* C”digo de usuario que genera el registro */    
@VDFE_SIST  TD_DT_001, /* Fecha y hora en la que se genera el registro */    
@VSCO_CNTA_DETA   TD_VC_020, /* C”digo de la Cuenta Contable TABLA DE DISTRIBUCION */    
@VNFC_ASTO  TD_IN_001,  /* INDICADOR DE CERO DE SECUENCIAL DE ASIENTO */    
  
@CSCO_UNID_CNTB   TD_VC_003,     
@VSST_AUXI_EMPR TD_VC_001,    
@VSST_FLAG        TD_VC_001,    
@CSCO_BANC        TD_VC_003,    
@CSCO_MONE        TD_VC_003,    
@CSAA_BNCO        TD_VC_004,     
@CSMM_BNCO        TD_VC_002,  

@CSTI_ENTI        TD_VC_001,    
@CSCO_TIPO_DOCU   TD_VC_003,    
@CSNU_COMP_BANC   TD_VC_008,    
@CSNU_DOCU_PROV   TD_VC_020,    
@CDFE_DOCU        TD_DT_001,    
@CSCO_CNTA_EMPR   TD_VC_020,    
@VSNU_MESE        TD_VC_002,    
@CNFA_CAMB_DOCU   TD_NU_016_004,    
@CSCO_ENTI        TD_VC_020,    
@CDFE_OPER        TD_DT_001,    
@CSCO_TIDO_ORIG   TD_VC_003,     
@CSNU_DOCU_ORIG   TD_VC_020,     
@CSCO_TIDO_DEST   TD_VC_003,    
@CSNU_DOCU_DEST   TD_VC_020,     
@CNIM_PAGO_DEST   TD_NU_016_004,    
@CNIM_SALD_DEST   TD_NU_016_004,    
@CNIM_PAGO_ORIG   TD_NU_016_004,    
@CNIM_SALD_ORIG   TD_NU_016_004,    
@VNIM_MVTO_CARG   TD_NU_016_004,    
@VNIM_MVTO_ABON   TD_NU_016_004,    
@VNIM_MVTO_AJUS   TD_NU_016_004,    
@CSNU_AMAR        TD_VC_008,    
@CDFE_AMAR        TD_DT_001,    
@VNNU_REGI_LETR   TD_IN_001,    
@VSCO_MONE_DETA   TD_VC_003,    
@CSCO_ENTI_DEST   TD_VC_020,    
@VSST_SIGN   TD_VC_001,    
@VNNU_CNTB_EMPR   TD_IN_001,    
@VNNU_PASO    TD_IN_001,    
@VSST_AJUS  TD_VC_001,    
@VNNU_DOCU_APLI  TD_IN_001,    
@VSCO_MONE_NACI  TD_VC_003,    
@VSCO_MONE_EXTR  TD_VC_003,    
@OSTI_DOCU_LETR  TD_VC_003,    
@CSST_CIER_DOCU  TD_VC_001,    
@CNFA_CAMB_DETA  TD_NU_015_006,    
@VSTI_CAMB_0001  TD_VC_001,    
@VSTI_ORIG_0001  TD_VC_001,    
@VSCO_CNTA_INGR  TD_VC_020,    
@VSCO_CNTA_EGRE  TD_VC_020,    
@VSST_DOCU_CNTB  TD_VC_001,    
@VSST_MONE  TD_VC_001,    
@VSST_CNTB_MTMN  TD_VC_001,  
  
-- Variables para el centro de costo cuenta de ganancia y perdida  
@VSTI_AUXI_DCGA TD_VC_001,  
@VSCO_AUXI_DCGA TD_VC_020,  
@VSTI_AUXI_DCPE TD_VC_001,  
@VSCO_AUXI_DCPE TD_VC_020,  
  
  
@VSTI_AUXI_REGA   TD_VC_001,   
@VSCO_AUXI_REGA   TD_VC_020,   
@VSTI_AUXI_REPE   TD_VC_001,  
@VSCO_AUXI_REPE   TD_VC_020  
  
  
    
CREATE TABLE #TTINTE_TESO    
(NU_SECU        INT           NULL,    
FE_ASTO_CNTB   DATETIME      NULL,     
 FE_DOCU_CNTB   DATETIME      NULL,     
 CO_CNTA_EMPR   VARCHAR(20)   NULL,    
 DE_CNTA_EMPR   VARCHAR(50)   NULL,    
 TI_AUXI_EMPR   VARCHAR(1)    NULL,    
 CO_AUXI_EMPR   VARCHAR(20)   NULL,    
 NO_AUXI        VARCHAR(100)  NULL,    
 TI_DOCU        VARCHAR(03)   NULL,     
 NU_DOCU        VARCHAR(15)   NULL,     
 CO_MONE        VARCHAR(03)   NULL,     
 FA_CAMB_DIAR   NUMERIC(9,4)  NULL,     
 TI_OPER        VARCHAR(3)    NULL,     
 IM_MVTO_ORIG   NUMERIC(16,4) NULL,    
 IM_MVTO_CNTB   NUMERIC(16,4) NULL,      
 DE_GLOS        VARCHAR(100)  NULL,     
 CO_ORDE_SERV   VARCHAR(20)   NULL,     
 NU_CORR_COMP   VARCHAR(10)   NULL,    
 CO_AUXI_DETA   VARCHAR(20)   NULL,    
 NO_AUXI_DETA   VARCHAR(100)  NULL)    
    
/* Inicializo variables de trabajo e insercciön */    
Select @VNIM_VARI_0001 = 0    
Select @VNIM_VARI_0002 = 0    
Select @VNIM_VARI_0003 = 0    
Select @VNNU_ANNO = 0    
Select @VNNU_MESE = 0    
Select @VSNU_ASTO = NULL    
Select @VDFE_ASTO_CNTB = NULL    
Select @VSCO_CNTA_EMPR = NULL    
Select @VSTI_AUXI_EMPR = NULL    
Select @VSCO_AUXI_EMPR = NULL    
Select @VSCO_DOCU = NULL    
Select @VSNU_DOCU = NULL    
Select @VDFE_DOCU = NULL    
Select @VSTI_CAMB = NULL    
Select @VSCO_MONE = NULL    
Select @VNFA_CAMB = 0    
Select @VSTI_OPER = NULL    
Select @VNIM_MVTO_ORIG = 0  
Select @VNIM_MVTO_CNTB = 0    
Select @VSDE_GLOS = NULL    
Select @VSCO_DOCU_REFE = NULL    
Select @VSNU_DOCU_REFE = NULL    
Select @VSNO_GIRA = NULL    
Select @VSOR_TRAB = NULL    
Select @VSSI_MVTO_CNTB = NULL    
Select @VSSI_MVTO_DOCU = NULL    
Select @VSNU_ASTO_ORIG = NULL    
Select @VSST_OTRS = NULL    
Select @VSCO_USUA = NULL    
Select @VDFE_SIST = NULL    
Select @VNIM_MVTO_CARG = 0    
Select @VNIM_MVTO_ABON = 0    
    
    
Select @VNNU_CNTB_EMPR = 1, @VNNU_SECU = 0, @VNIM_MVTO_AJUS = 0, @VNNU_PASO = 0    
Select @VSST_AJUS = 'N'    
    
Select @VSTI_CAMB_0001 = TI_CAMB, @VSTI_ORIG_0001 = TI_ORIG    
From TTFACA_OPCI    
Where CO_EMPR = @ISCO_EMPR    
AND CO_MODU = 'TEEM0001'    
AND CO_MENU = 'FTEEMAW'    
    
If @VSTI_CAMB_0001 Is Null    
   Select @VSTI_CAMB_0001 = TI_CAMB, @VSTI_ORIG_0001 = TI_ORIG, @VSCO_MONE_NACI = CO_MONE_DEFA,     
  @VSCO_MONE_EXTR = CO_MONE_EXTR, @VSST_CNTB_MTMN = ST_CNTB_MTMN    
   From TMPARA_TESO    
   Where CO_EMPR = @ISCO_EMPR    
Else    
 Select @VSCO_MONE_NACI = CO_MONE_DEFA, @VSCO_MONE_EXTR = CO_MONE_EXTR, @VSST_CNTB_MTMN = ST_CNTB_MTMN    
 From TMPARA_TESO    
 Where CO_EMPR = @ISCO_EMPR    
  
/*********** parametros de contabilidad*************/  
Select @VSTI_AUXI_DCGA  = TI_AUXI_DCGA, @VSCO_AUXI_DCGA  = CO_AUXI_DCGA,    
  @VSTI_AUXI_DCPE  = TI_AUXI_DCPE, @VSCO_AUXI_DCPE  = CO_AUXI_DCPE,   
  @VSTI_AUXI_REGA = TI_AUXI_REGA,  @VSCO_AUXI_REGA = CO_AUXI_REGA,     
  @VSTI_AUXI_REPE = TI_AUXI_REPE,  @VSCO_AUXI_REPE = CO_AUXI_REPE    
From TMPARA_CONT  
Where CO_EMPR = @ISCO_EMPR  
  
    
Select @VNNU_DOCU_APLI = Count(NU_AMAR)    
From TDAMAR_OCPR    
Where CO_EMPR =  @ISCO_EMPR    
And CO_UNID_CONC = @ISPA_0001    
And NU_AMAR = @ISNU_ASTO    
And FE_AMAR = @IDPA_FECH    
    
Exec SP_TTDOCU_CNTB_Q02 6, @OSTI_DOCU_LETR OUTPUT    
    
    
Declare CU_TTPROC_INTE_I52_1 Cursor    
For    
Select t2.CO_TIPO_OPER, t2.NU_CORR, t2.NU_DETA, t2.CO_OPRC_CNTB, t2.NU_ASTO,    
t2.CO_CNTA_EMPR, t2.IN_CNTA_MONE, t2.CO_MONE, t2.TI_AUXI_EMPR, t2.TI_DOCU, t2.TI_DOCU_REFE,    
t2.TI_MOVI, ISNULL(t2.IM_0001,0), t2.OP_ARIT_0001, ISNULL(t2.IM_0002,0), t2.OP_ARIT_0002,    
ISNULL(t2.IM_0003,0), t2.DE_GLOS, 'P', t3.CO_PROV,  t1.CO_TIDO_ORIG, t1.NU_DOCU_ORIG,     
t1.CO_TIDO_DEST, t1.NU_DOCU_DEST, t1.IM_PAGO_DEST, t1.IM_SALD_DEST, t3.CO_MONE, t3.CO_UNID_CONC, t0.FE_ANUL,     
t1.NU_AMAR, t3.FA_TIPO_CAMB, t1.IM_PAGO_CORI, t1.IM_SALD_CORI, t1.CO_ENTI, t3.DE_OBSE, t1.ST_CIER_DOCU, t1.TI_CAMB    
From  TTAMAR_OPAN t0, TDAMAR_OCPR t1, TDTIPO_OPER t2, TCAMAR_OCPR t3    
Where t0.CO_EMPR =  @ISCO_EMPR 
And   t0.CO_UNID_CONC = @ISPA_0001 
And   t0.NU_ASTO = @ISNU_ASTO 
And   t0.FE_ANUL = @IDPA_FECH 
And   t1.CO_EMPR =  t0.CO_EMPR 
And   t1.CO_UNID_CONC = t0.CO_UNID_CONC 
And   t1.NU_AMAR = t0.NU_AMAR 
And   t1.FE_AMAR = t0.FE_AMAR 
And   t1.CO_EMPR = t3.CO_EMPR 
And   t1.CO_UNID_CONC = t3.CO_UNID_CONC 
And   t1.NU_AMAR = t3.NU_AMAR 
And   t1.FE_AMAR = t3.FE_AMAR 
And   t3.CO_EMPR = t2.CO_EMPR 
And   t3.CO_TIPO_OPER = t2.CO_TIPO_OPER     
Order By t2.CO_TIPO_OPER, t2.CO_OPRC_CNTB, t1.NU_AMAR    
    
/* Abre Cursor de Interfase - Cabecera */    
Open CU_TTPROC_INTE_I52_1    
Fetch  CU_TTPROC_INTE_I52_1 Into    
@CSCO_TIPO_OPER, @CNNU_CORR, @CNNU_DETA, @CSCO_OPRC_CNTB, @CNID_ASTO,    
@CSCO_CNTA, @CSIN_CNTA_MONE, @CSCO_MONE_CNTA, @CSTI_AUXI_CNTA, @CSTI_DOCU_CNTA, @CSTI_DOCU_REFE,    
@CSTI_MOVI, @CNIM_INTE_0001, @CSOP_ARIT_0001, @CNIM_INTE_0002, @CSOP_ARIT_0002, @CNIM_INTE_0003,    
@CSDE_GLOS_INTE, @CSTI_ENTI, @CSCO_ENTI, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CSCO_TIDO_DEST,    
@CSNU_DOCU_DEST, @CNIM_PAGO_DEST, @CNIM_SALD_DEST, @CSCO_MONE_MOVI, @CSCO_UNID_CNTB, @CDFE_AMAR, @CSNU_AMAR, @CNFA_CAMB_DOCU, 
   
@CNIM_PAGO_ORIG, @CNIM_SALD_ORIG, @CSCO_ENTI_DEST, @CSDE_GLOS_CABE, @CSST_CIER_DOCU, @CNFA_CAMB_DETA    
    
Select @VNNU_FETC_0001 = @@FETCH_STATUS    
    
While (@VNNU_FETC_0001 = 0)    
Begin    
	If (@VNNU_FETC_0001  < 0)    
	Begin    
		--RAISERROR 20001 "FIN DE ARCHIVO"    
		CLOSE CU_TTPROC_INTE_I52_1    
		DEALLOCATE CU_TTPROC_INTE_I52_1    
		RETURN    
	End    
	
	/*  Asigna Nomero a?o   */    
	SELECT @VNNU_ANNO = DATEPART(YEAR, @CDFE_AMAR)    
	
	/*  Asigna Nomero de mes   */    
	SELECT @VNNU_MESE = DATEPART(MONTH, @CDFE_AMAR)    
	
	/*  Asigna Fecha del Asiento   */    
	SELECT @VDFE_ASTO_CNTB = @CDFE_AMAR    
	
	/*  Asigna Tipo de Cambio Pactado  */    
	SELECT @VSTI_CAMB = 'PAC'    
	
	/*  Asigna Cödigo de la Moneda */    
	SELECT @VSCO_MONE = @CSCO_MONE_CNTA    
	
	/*  Asigna Tipo de Movimiento */    
	SELECT @VSTI_OPER = @CSTI_MOVI    
	
	/*  Asigna Factor de Cambio  */    
	
	SELECT @VNFA_CAMB = @CNFA_CAMB_DOCU    
	
	/*  Asigna Glosa del Movimiento  */    
	SELECT @VSDE_GLOS = @CSDE_GLOS_INTE    
	IF @CSDE_GLOS_INTE = ''    
	SELECT @VSDE_GLOS = @CSDE_GLOS_CABE    
	
	/*  Asigna Tipo de Documento de Referencia  */    
	SELECT @VSCO_DOCU_REFE = @CSTI_DORE_CABE    
	If @CSTI_DOCU_REFE = 'N'    
		SELECT @VSCO_DOCU_REFE = NULL    
	
	/*  Asigna Cödigo de Documento de Referencia  */    
	SELECT @VSNU_DOCU_REFE = @CSNU_DORE_CABE    
	If @CSTI_DOCU_REFE = 'N'    
		SELECT @VSNU_DOCU_REFE = NULL    
	
	/*  Asigna Nombre del que gira el cheque    
	Solo llenar cuando es interfase de Bancos Giro de Cheques  */    
	SELECT @VSNO_GIRA = @CSNO_GIRA     
	
	/*  Asigna Situaciön Movimiento  */    
	Select @VSSI_MVTO_CNTB = 'APR'    
	
	/*  Asigna Situaciön del Documento  */    
	Select @VSSI_MVTO_DOCU = 'N'    
	
	/*  Asigna Otros   */    
	SELECT @VSST_OTRS = NULL    
	
	/*  Asigna Usuario de la Operacion   */    
	SELECT @VSCO_USUA = @ISCO_USUA_MODI
	
	/*  Asigna Usuario de la Operacion   */    
	SELECT @VDFE_SIST = GETDATE()    
	
	If @CNNU_DETA = 1 And @CSCO_TIDO_ORIG is not null    
	Begin    
	
		/*  Asigna Valores no directos - Detalle */    
		IF @VSCO_CNTA_EMPR IS NULL    
			SELECT @VSCO_CNTA_EMPR = @CSCO_CNTA    
		
		/* Asigna Importe Origen */    
		If @CSST_CIER_DOCU = 'N'    
			Select @VNIM_MVTO_ORIG = @CNIM_PAGO_ORIG    
		Else    
			Select @VNIM_MVTO_ORIG = @CNIM_SALD_ORIG    
		
		Select @VSCO_MONE_DETA = CO_MONE, @VDFE_DOCU = FE_EMIS, @VDFE_VENC = FE_VENC    
		From  TMDOCU_PROV    
		Where CO_EMPR = @ISCO_EMPR    
		And   CO_PROV = @CSCO_ENTI    
		And   CO_TIPO_DOCU = @CSCO_TIDO_ORIG    
		And   NU_DOCU_PROV = @CSNU_DOCU_ORIG    
		
		Select @VSTI_OPER = 'ABO'    
		
		IF ((@VSCO_MONE = @VSCO_MONE_DETA ) OR     
			(@VSCO_MONE != @VSCO_MONE_DETA And @VSCO_MONE = @VSCO_MONE_EXTR And @CSIN_CNTA_MONE = 'S'    
			And @VSST_CNTB_MTMN = 'N' And @VSCO_MONE_DETA != @VSCO_MONE_NACI And @VSCO_MONE_DETA != 
@VSCO_MONE_EXTR))                       
		BEGIN    
		
			If @ISST_INTE = 'S'    
				Select @VNNU_REGI_LETR = COUNT(NU_DOCU)     
				From   TTINTE_CNDE    
				Where  CO_EMPR = @ISCO_EMPR     
				And    NU_CNTB_EMPR = @VNNU_CNTB_EMPR     
				And    CO_UNID_CNTB = @CSCO_UNID_CNTB     
				And    CO_OPRC_CNTB = @CSCO_OPRC_CNTB     
				And    NU_ANNO = @VNNU_ANNO    
				And    NU_MESE = @VNNU_MESE    
				And    NU_ASTO = @ISNU_ASTO      
				And    TI_DOCU = @CSCO_TIDO_ORIG     
				And    NU_DOCU = @CSNU_DOCU_ORIG                                            
			Else    
				Select @VNNU_REGI_LETR = COUNT(NU_DOCU)     
				From   #TTINTE_TESO    
				Where  TI_DOCU = @CSCO_TIDO_ORIG     
				And    NU_DOCU = @CSNU_DOCU_ORIG                                            
		
			If @VNNU_REGI_LETR = 0    
			Begin    
			
				Select @VNNU_REGI_LETR = 0    
				
				/*  Asigna C"digo de Auxiliar   */    
				Select @VSST_AUXI_EMPR  = ST_AUXI_EMPR , @VSST_DOCU_CNTB = ST_DOCU_CNTB    
				FROM TMPLAN_EMPR    
				WHERE CO_EMPR = @ISCO_EMPR AND     
				CO_CNTA_EMPR = @VSCO_CNTA_EMPR    
				
				IF @VSST_AUXI_EMPR = 'S'    
					Select @VSTI_AUXI_EMPR = @CSTI_ENTI, @VSCO_AUXI_EMPR = @CSCO_ENTI    
				ELSE     
					SELECT @VSTI_AUXI_EMPR = NULL, @VSCO_AUXI_EMPR = NULL    
				
				
				IF @VSST_DOCU_CNTB = 'S'    
					Select @VSCO_DOCU = @CSCO_TIDO_ORIG, @VSNU_DOCU = @CSNU_DOCU_ORIG    
				ELSE     
					Select @VSCO_DOCU = NULL, @VSNU_DOCU = NULL, @VDFE_DOCU = NULL, @VDFE_DOCU = NULL, 
@VDFE_VENC = NULL    
				
				
				/*  Incrementa Secuencial dentro de un asiento   */    
				Select @VNNU_SECU = @VNNU_SECU + 1, @VNNU_PASO = @VNNU_PASO + 1    
				
				Select @VNIM_MVTO_ORIG = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@CSCO_MONE_MOVI,     
				@VSCO_MONE_DETA, @CDFE_AMAR, @VNIM_MVTO_ORIG, @VSTI_CAMB_0001,     
				@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB))    
				Select @VNIM_MVTO_ORIG = Round(@VNIM_MVTO_ORIG, 2)    
				
				Select @VNIM_MVTO_CNTB = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_DETA,     
				@VSCO_MONE_NACI, @CDFE_AMAR, @VNIM_MVTO_ORIG, @VSTI_CAMB_0001,     
				@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB))    
				Select @VNIM_MVTO_CNTB = Round(@VNIM_MVTO_CNTB, 2)    
				
				--- Select @VNIM_MVTO_CARG = @VNIM_MVTO_CARG + @VNIM_MVTO_CNTB --- Antes Cambiar por:  
				Select @VNIM_MVTO_ABON = @VNIM_MVTO_ABON + @VNIM_MVTO_CNTB
				
				If @CSST_CIER_DOCU = 'S' And @CNIM_PAGO_ORIG != @CNIM_SALD_ORIG    
					Select @VSST_AJUS = 'S'    
				
				If @VSCO_MONE = @VSCO_MONE_NACI    
					Select @VNFA_CAMB = 1.00    
				Else If @VSCO_MONE != @VSCO_MONE_EXTR    
					Select @VNFA_CAMB = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_DETA,     
					@VSCO_MONE_EXTR, @CDFE_AMAR, 1, @VSTI_CAMB_0001,     
					@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB))    
		
				If @ISST_INTE = 'S'    
					INSERT INTO TTINTE_CNDE (CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,  
  
					NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,    
					TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR, 
TI_OPER, IM_MVTO_ORIG,    
					IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, NO_GIRA, CO_ORDE_SERV, 
SI_MVTO_CNTB,    
					CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, ST_OTRS,    
					CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI, NU_PROC, CO_TABL_ORIG, 
CO_CLAV_TAOR, CO_TIPO_OPER)    
					
					VALUES (@ISCO_EMPR, @VNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB, @VNNU_ANNO,    
					@VNNU_MESE, @ISNU_ASTO, @VNNU_SECU, @VDFE_ASTO_CNTB, @VSCO_CNTA_EMPR, 
@VSTI_AUXI_EMPR, @VSCO_AUXI_EMPR,    
					@VSCO_DOCU, @VSNU_DOCU, @VDFE_DOCU, @VDFE_VENC, @VSTI_CAMB, @VSCO_MONE_DETA, 
@VNFA_CAMB, @CNFA_CAMB_DOCU, @VSTI_OPER, @VNIM_MVTO_ORIG,    
					@VNIM_MVTO_CNTB, @CSDE_GLOS_CABE, @VSCO_DOCU_REFE, @VSNU_DOCU_REFE, @VSNO_GIRA, NULL, 
@VSSI_MVTO_CNTB,    
					NULL, NULL, NULL, @VSST_OTRS, @ISCO_USUA_MODI, GETDATE(),@ISCO_USUA_MODI, GETDATE(), 
0,    
					27, @ISCO_EMPR+@CSNU_AMAR, @CSCO_TIPO_OPER)    
				Else    
					INSERT INTO #TTINTE_TESO (NU_SECU, FE_ASTO_CNTB, FE_DOCU_CNTB, CO_CNTA_EMPR, 
CO_AUXI_EMPR, TI_DOCU, NU_DOCU,    
					CO_MONE, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,IM_MVTO_CNTB, DE_GLOS, CO_AUXI_DETA, 
TI_AUXI_EMPR, CO_ORDE_SERV)     
					
					VALUES (@VNNU_SECU, @VDFE_ASTO_CNTB, @VDFE_DOCU, @VSCO_CNTA_EMPR, @VSCO_AUXI_EMPR,    
 
					@VSCO_DOCU, @VSNU_DOCU, @VSCO_MONE, @CNFA_CAMB_DOCU, @VSTI_OPER, @VNIM_MVTO_ORIG,    
					@VNIM_MVTO_CNTB, @VSDE_GLOS, @VSCO_AUXI_EMPR, @VSTI_AUXI_EMPR, NULL)    
				
				
				IF (@@ERROR != 0)    
				BEGIN    
					CLOSE CU_TTPROC_INTE_I52_1    
					DEALLOCATE CU_TTPROC_INTE_I52_1    
					RETURN    
				END    
			End    --If @VNNU_REGI_LETR = 0 
		
			SELECT @VNFC_ASTO = 1    

		End    ---IF ((@VSCO_MONE = @VSCO_MONE_DETA ) OR ...

	END     ---If @CNNU_DETA = 1 And @CSCO_TIDO_ORIG is not null
	
	If @CNNU_DETA = 2 And @CSCO_TIDO_DEST is not null    
	Begin    
		IF @VSCO_CNTA_EMPR IS NULL         
			SELECT @VSCO_CNTA_EMPR = @CSCO_CNTA    
		
		/* Asigna Importe Origen */    
		If @CSST_CIER_DOCU = 'N'    
			Select @VNIM_MVTO_ORIG = @CNIM_PAGO_DEST    
		Else    
			Select @VNIM_MVTO_ORIG = @CNIM_SALD_DEST    
		
		
		If @CSCO_TIDO_DEST != @OSTI_DOCU_LETR    
			Select @VSCO_MONE_DETA = T1.CO_MONE, @VDFE_DOCU = T1.FE_EMIS, @VDFE_VENC = T1.FE_VENC, @VSST_SIGN = 
T2.ST_SIGN    
			From  TMDOCU_PROV T1, TTDOCU_CNTB T2    
			Where T1.CO_EMPR = @ISCO_EMPR    
			And   T1.CO_PROV = @CSCO_ENTI_DEST    
			And   T1.CO_TIPO_DOCU = @CSCO_TIDO_DEST    
			And   T1.NU_DOCU_PROV = @CSNU_DOCU_DEST    
			And   T1.CO_TIPO_DOCU = T2.TI_DOCU    
		Else    
			Select @VSCO_MONE_DETA = T1.CO_MONE, @VDFE_DOCU = T1.FE_EMIS, @VDFE_VENC = T1.FE_VENC, @VSST_SIGN = 
T2.ST_SIGN    
			From  TMLETR_PROV T1, TTDOCU_CNTB T2    
			Where T1.CO_EMPR = @ISCO_EMPR    
			And   T1.CO_PROV = @CSCO_ENTI_DEST    
			And   T1.NU_LETR_PROV = @CSNU_DOCU_DEST    
			And   T2.TI_DOCU = @OSTI_DOCU_LETR    
		
	
		IF @VSST_SIGN = 'N'    
			Select @VSTI_OPER = 'ABO'    
		ELSE    
			Select @VSTI_OPER = 'CAR'    
	
		IF ((@VSCO_MONE = @VSCO_MONE_DETA) OR     
			(@VSCO_MONE != @VSCO_MONE_DETA And @VSCO_MONE = @VSCO_MONE_EXTR And @CSIN_CNTA_MONE = 'S'    
			And @VSST_CNTB_MTMN = 'N' And @VSCO_MONE_DETA != @VSCO_MONE_NACI And @VSCO_MONE_DETA != 
@VSCO_MONE_EXTR)) And     
			((@CSCO_TIDO_DEST =  @OSTI_DOCU_LETR And SUBSTRING(@VSCO_CNTA_EMPR,1,3) = '423') Or    
			(@CSCO_TIDO_DEST != @OSTI_DOCU_LETR And SUBSTRING(@VSCO_CNTA_EMPR,1,3) = '421'))
		BEGIN    
		
			Select @VNNU_REGI_LETR = 0     
			
			If @ISST_INTE = 'S'    
				Select @VNNU_REGI_LETR = COUNT(NU_DOCU)     
				From   TTINTE_CNDE    
				Where  CO_EMPR = @ISCO_EMPR     
				And    NU_CNTB_EMPR = @VNNU_CNTB_EMPR     
				And    CO_UNID_CNTB = @CSCO_UNID_CNTB     
				And    CO_OPRC_CNTB = @CSCO_OPRC_CNTB     
				And    NU_ANNO = @VNNU_ANNO     
				And    NU_MESE = @VNNU_MESE      
				And    NU_ASTO = @VSNU_ASTO     
				And    TI_DOCU = @CSCO_TIDO_DEST    
				And    NU_DOCU = @CSNU_DOCU_DEST    
			Else    
				Select @VNNU_REGI_LETR = COUNT(NU_DOCU)     
				From   #TTINTE_TESO    
				Where  TI_DOCU = @CSCO_TIDO_DEST    
				And    NU_DOCU = @CSNU_DOCU_DEST                                            
			
			If @VNNU_REGI_LETR = 0    
			Begin    
				/*  Asigna C"digo de Auxiliar   */    
				Select @VSST_AUXI_EMPR  = ST_AUXI_EMPR , @VSST_DOCU_CNTB = ST_DOCU_CNTB    
				FROM TMPLAN_EMPR    
				WHERE CO_EMPR = @ISCO_EMPR AND     
				CO_CNTA_EMPR = @VSCO_CNTA_EMPR    
			
				IF @VSST_AUXI_EMPR = 'S'    
					Select @VSTI_AUXI_EMPR = @CSTI_ENTI, @VSCO_AUXI_EMPR = @CSCO_ENTI_DEST    
				ELSE     
					SELECT @VSTI_AUXI_EMPR = NULL, @VSCO_AUXI_EMPR = NULL    
				
				IF @VSST_DOCU_CNTB = 'S'    
					Select @VSCO_DOCU = @CSCO_TIDO_DEST, @VSNU_DOCU = @CSNU_DOCU_DEST    
				ELSE     
					Select @VSCO_DOCU = NULL, @VSNU_DOCU = NULL, @VDFE_DOCU = NULL, @VDFE_VENC = NULL    
		
		
				/* Select @VNIM_MVTO_ORIG = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@CSCO_MONE_MOVI,     
				@VSCO_MONE_DETA, @CDFE_AMAR, @VNIM_MVTO_ORIG, @VSTI_CAMB_0001,     
				@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB)) */    
		
				Select @VNFA_CAMB = @CNFA_CAMB_DETA    
				Select @VNIM_MVTO_ORIG = Round(@VNIM_MVTO_ORIG, 2)    
		
				Select @VNIM_MVTO_CNTB = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_DETA,     
				@VSCO_MONE_NACI, @CDFE_AMAR, @VNIM_MVTO_ORIG, @VSTI_CAMB_0001,     
				@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB))    
				Select @VNIM_MVTO_CNTB = Round(@VNIM_MVTO_CNTB, 2)    
		
				-- Select @VNIM_MVTO_ABON = @VNIM_MVTO_ABON + @VNIM_MVTO_CNTB   --- Antes Cambiar por:  
				IF @VSST_SIGN = 'N'
					Select @VNIM_MVTO_ABON = @VNIM_MVTO_ABON + @VNIM_MVTO_CNTB
				ELSE
					Select @VNIM_MVTO_CARG = @VNIM_MVTO_CARG + @VNIM_MVTO_CNTB


		
				If @CSST_CIER_DOCU = 'S' And @CNIM_PAGO_DEST != @CNIM_SALD_DEST    
					Select @VSST_AJUS = 'S'    
		
				If @VSCO_MONE = @VSCO_MONE_NACI    
					Select @VNFA_CAMB = 1.00    
				Else If @VSCO_MONE != @VSCO_MONE_EXTR    
					Select @VNFA_CAMB = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_DETA,     
					@VSCO_MONE_EXTR, @CDFE_AMAR, 1, @VSTI_CAMB_0001,     
					@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB))    
		
					/*  Incrementa Secuencial dentro de un asiento   */    
				Select @VNNU_SECU = @VNNU_SECU + 1, @VNNU_PASO = @VNNU_PASO + 1    
					
				If @ISST_INTE = 'S'    
					INSERT INTO TTINTE_CNDE (CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,  
  
					NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,    
					TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR, 
TI_OPER, IM_MVTO_ORIG,    
					IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, NO_GIRA, CO_ORDE_SERV, 
SI_MVTO_CNTB,    
					CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, ST_OTRS,    
					CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI, NU_PROC, CO_TABL_ORIG, 
CO_CLAV_TAOR, CO_TIPO_OPER)    
					
					VALUES (@ISCO_EMPR, @VNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB, @VNNU_ANNO,    
					@VNNU_MESE, @ISNU_ASTO, @VNNU_SECU, @VDFE_ASTO_CNTB, @VSCO_CNTA_EMPR, 
@VSTI_AUXI_EMPR, @VSCO_AUXI_EMPR,    
					@VSCO_DOCU, @VSNU_DOCU, @VDFE_DOCU, @VDFE_VENC, @VSTI_CAMB, @VSCO_MONE, @VNFA_CAMB, 
@CNFA_CAMB_DETA, @VSTI_OPER, @VNIM_MVTO_ORIG,    
					@VNIM_MVTO_CNTB, @CSDE_GLOS_CABE, @VSCO_DOCU_REFE, @VSNU_DOCU_REFE, @VSNO_GIRA, NULL, 
@VSSI_MVTO_CNTB,    
					NULL, NULL, NULL, @VSST_OTRS, @ISCO_USUA_MODI, GETDATE(),@ISCO_USUA_MODI, GETDATE(), 
0,    
					27, @ISCO_EMPR+@CSNU_AMAR, @CSCO_TIPO_OPER)    
				Else    
					INSERT INTO #TTINTE_TESO (NU_SECU, FE_ASTO_CNTB, FE_DOCU_CNTB, CO_CNTA_EMPR, 
CO_AUXI_EMPR, TI_DOCU, NU_DOCU,    
					CO_MONE, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,IM_MVTO_CNTB, DE_GLOS, CO_AUXI_DETA, 
TI_AUXI_EMPR, CO_ORDE_SERV)     
					
					VALUES (@VNNU_SECU, @VDFE_ASTO_CNTB, @VDFE_DOCU, @VSCO_CNTA_EMPR, @VSCO_AUXI_EMPR,    
 
					@VSCO_DOCU, @VSNU_DOCU, @VSCO_MONE, @CNFA_CAMB_DETA, @VSTI_OPER, @VNIM_MVTO_ORIG,    
					@VNIM_MVTO_CNTB, @VSDE_GLOS, @VSCO_AUXI_EMPR, @VSTI_AUXI_EMPR, NULL)    
				
					
				IF (@@ERROR != 0)    
				BEGIN    
					CLOSE CU_TTPROC_INTE_I52_1    
					DEALLOCATE CU_TTPROC_INTE_I52_1    
					RETURN    
				END    
			End     ----((@VSCO_MONE = @VSCO_MONE_DETA) OR     

			SELECT @VNFC_ASTO = 1    

		End  ----If @CNNU_DETA = 2 And @CSCO_TIDO_DEST is not null      
	
		If @VSST_AJUS = 'S' And RtrIm(IsNull(@CSCO_CNTA, '')) = '' And @VNNU_PASO = @VNNU_DOCU_APLI    
		Begin    
			Select @VSCO_CNTA_INGR = CO_CNTA_INGR, @VSCO_CNTA_EGRE = CO_CNTA_EGRE    
			From   TMPARA_TESO    
			Where  CO_EMPR = @ISCO_EMPR    
			
			--- Select @VNIM_MVTO_AJUS = @VNIM_MVTO_CARG - @VNIM_MVTO_ABON  --- Antes Cambiar por:  
			Select @VNIM_MVTO_AJUS = @VNIM_MVTO_ABON - @VNIM_MVTO_CARG			
			
			Select @VNFA_CAMB = @CNFA_CAMB_DOCU    
			
			Select @VNIM_MVTO_CNTB = Abs(Round(@VNIM_MVTO_AJUS, 2))    
			
			If @CSCO_MONE_MOVI = @VSCO_MONE_NACI                       
				Select @VNIM_MVTO_ORIG = Round(@VNIM_MVTO_CNTB, 2)    
			Else     
				Select @VNIM_MVTO_ORIG = Round(@VNIM_MVTO_CNTB / @VNFA_CAMB,2)    
	
			If @VNIM_MVTO_AJUS < 0    
			Begin    
				Select @VSTI_OPER = 'ABO'    
				Select @VSCO_CNTA_EMPR = @VSCO_CNTA_INGR    
				
				Select @VSST_AUXI_EMPR = ST_AUXI_EMPR, @VSST_DOCU_CNTB = ST_DOCU_CNTB,     
					@VSTI_AUXI_EMPR = TI_AUXI_EMPR, @VSST_MONE = ST_MONE, @VSCO_MONE = CO_MONE    
				From   TMPLAN_EMPR    
				Where  CO_EMPR = @ISCO_EMPR    
				And    CO_CNTA_EMPR = @VSCO_CNTA_EMPR    
			
			End    
			Else    
			Begin    
				Select @VSTI_OPER = 'CAR'    
				Select @VSCO_CNTA_EMPR = @VSCO_CNTA_EGRE    
				
				Select @VSST_AUXI_EMPR = ST_AUXI_EMPR, @VSST_DOCU_CNTB = ST_DOCU_CNTB,     
				@VSTI_AUXI_EMPR = TI_AUXI_EMPR, @VSST_MONE = ST_MONE, @VSCO_MONE = CO_MONE    
				From   TMPLAN_EMPR    
				Where  CO_EMPR = @ISCO_EMPR    
				And CO_CNTA_EMPR = @VSCO_CNTA_EMPR    
			
			End    
	
			If @VSST_AUXI_EMPR = 'S'    
				If @VNIM_MVTO_AJUS < 0    
					Select @VSTI_AUXI_EMPR = @VSTI_AUXI_REPE, @VSCO_AUXI_EMPR = @VSCO_AUXI_REPE      
				else  
					Select @VSTI_AUXI_EMPR = @VSTI_AUXI_REGA, @VSCO_AUXI_EMPR = @VSCO_AUXI_REGA   
			Else    
				Select @VSTI_AUXI_EMPR = NULL, @VSCO_AUXI_EMPR = NULL    
	
			If @VSST_DOCU_CNTB = 'N'    
			Begin    
				Select @VSCO_DOCU = NULL    
				Select @VSNU_DOCU = NULL    
				Select @VDFE_DOCU = NULL    
			End       
	
			If @VSST_MONE = 'N'    
				Select @VSCO_MONE = @CSCO_MONE_MOVI    
			Else     
				Select @VNIM_MVTO_ORIG = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_NACI,     
				@VSCO_MONE, @CDFE_AMAR, @VNIM_MVTO_CNTB, @VSTI_CAMB_0001,     
				@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB))    
	
			If @VSCO_MONE = @VSCO_MONE_NACI    
				Select @VNFA_CAMB = 1.00    
			Else If @VSCO_MONE != @VSCO_MONE_EXTR    
				Select @VNFA_CAMB = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_DETA,     
				@VSCO_MONE_EXTR, @CDFE_AMAR, 1, @VSTI_CAMB_0001,     
				@VSTI_ORIG_0001, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB))    
	
	
			/*  Incrementa Secuencial dentro de un asiento   */    
			Select @VNNU_SECU = @VNNU_SECU + 1, @VNNU_PASO = @VNNU_PASO + 1    
			
			Select @VSNU_ASTO = '0'+SUBSTRING(@VSNU_ASTO,2,10)    
			Select @VDFE_SIST = GETDATE()    
			
			If @ISST_INTE = 'S'    
				INSERT INTO TTINTE_CNDE (CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,    
				NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,    
				TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,    
				IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, NO_GIRA, CO_ORDE_SERV, SI_MVTO_CNTB,    
				CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, ST_OTRS,    
				CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI, NU_PROC, CO_TABL_ORIG, CO_CLAV_TAOR, 
CO_TIPO_OPER)    
				
				VALUES (@ISCO_EMPR, @VNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB, @VNNU_ANNO,    
				@VNNU_MESE, @ISNU_ASTO, @VNNU_SECU, @VDFE_ASTO_CNTB, @VSCO_CNTA_EMPR, @VSTI_AUXI_EMPR, 
@VSCO_AUXI_EMPR,    
				@VSCO_DOCU, @VSNU_DOCU, @VDFE_DOCU, @VSTI_CAMB, @VSCO_MONE, @VNFA_CAMB, @CNFA_CAMB_DOCU, 
@VSTI_OPER, @VNIM_MVTO_ORIG,    
				@VNIM_MVTO_CNTB, @CSDE_GLOS_CABE, @VSCO_DOCU_REFE, @VSNU_DOCU_REFE, @VSNO_GIRA, NULL, 
@VSSI_MVTO_CNTB,    
				NULL, NULL, NULL, @VSST_OTRS,@ISCO_USUA_MODI, GETDATE(),@ISCO_USUA_MODI, GETDATE(), 0,    
				27, @ISCO_EMPR+@CSNU_AMAR, @CSCO_TIPO_OPER)    
			Else    
				INSERT INTO #TTINTE_TESO (NU_SECU, FE_ASTO_CNTB, FE_DOCU_CNTB, CO_CNTA_EMPR, CO_AUXI_EMPR, 
TI_DOCU, NU_DOCU,    
				CO_MONE, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,IM_MVTO_CNTB, DE_GLOS, CO_AUXI_DETA, 
TI_AUXI_EMPR, CO_ORDE_SERV)     
				
				VALUES (@VNNU_SECU, @VDFE_ASTO_CNTB, @VDFE_DOCU, @VSCO_CNTA_EMPR, @VSCO_AUXI_EMPR,     
				@VSCO_DOCU, @VSNU_DOCU, @VSCO_MONE, @CNFA_CAMB_DOCU, @VSTI_OPER, @VNIM_MVTO_ORIG,    
				@VNIM_MVTO_CNTB, @VSDE_GLOS, @VSCO_AUXI_EMPR, @VSTI_AUXI_EMPR, NULL)    
			
			IF (@@ERROR != 0)    
			BEGIN    
				CLOSE CU_TTPROC_INTE_I52_1    
				DEALLOCATE CU_TTPROC_INTE_I52_1    
				RETURN    
			END    
			Select @VNFC_ASTO = 1    
		End    
	
	END     
	
	
	Select @VSTI_AUXI_EMPR = NULL    
	Select @VSCO_AUXI_EMPR = NULL    
	Select @VSCO_CNTA_EMPR = NULL    
	
	
	/* Lee cursos de Interfase - Detalle */    
	Fetch  CU_TTPROC_INTE_I52_1 Into    
	@CSCO_TIPO_OPER, @CNNU_CORR, @CNNU_DETA, @CSCO_OPRC_CNTB, @CNID_ASTO,    
	@CSCO_CNTA, @CSIN_CNTA_MONE, @CSCO_MONE_CNTA, @CSTI_AUXI_CNTA, @CSTI_DOCU_CNTA, @CSTI_DOCU_REFE,    
	@CSTI_MOVI, @CNIM_INTE_0001, @CSOP_ARIT_0001, @CNIM_INTE_0002, @CSOP_ARIT_0002, @CNIM_INTE_0003,    
	@CSDE_GLOS_INTE, @CSTI_ENTI, @CSCO_ENTI, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CSCO_TIDO_DEST,    
	@CSNU_DOCU_DEST, @CNIM_PAGO_DEST, @CNIM_SALD_DEST, @CSCO_MONE_MOVI, @CSCO_UNID_CNTB, @CDFE_AMAR, @CSNU_AMAR, 
@CNFA_CAMB_DOCU,    
	@CNIM_PAGO_ORIG, @CNIM_SALD_ORIG, @CSCO_ENTI_DEST, @CSDE_GLOS_CABE, @CSST_CIER_DOCU, @CNFA_CAMB_DETA    
	Select @VNNU_FETC_0001 = @@FETCH_STATUS    
END    
    
CLOSE CU_TTPROC_INTE_I52_1    
DEALLOCATE CU_TTPROC_INTE_I52_1    
    
/*------------------------------------- E X T O R N O 
------------------------------------------------------------------------*/  
If @ISST_INTE = 'S'  
Begin
	Update TTINTE_CNDE
	Set	TI_OPER = Case TI_OPER When 'ABO' Then 'CAR' Else 'ABO' End

End
ELSE
Begin
	Update #TTINTE_TESO
	Set	TI_OPER = Case TI_OPER When 'ABO' Then 'CAR' Else 'ABO' End


End
/*---------------------------------------------------------------------------------------------------------------------------
-*/  
    
If @ISST_INTE = 'S'    
 INSERT INTO TXMVTO_CNTB (CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,    
  NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,    
  TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,    
  IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, NO_GIRA, CO_ORDE_SERV, SI_MVTO_CNTB,    
  CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, ST_OTRS,    
  CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI, NU_PROC, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)    
 SELECT CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,    
  NU_MESE, '00000' + RIGHT(NU_ASTO, 5), NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,    
  TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,    
  IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, NO_GIRA, CO_ORDE_SERV, SI_MVTO_CNTB,    
  CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, ST_OTRS,    
  CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI, NU_PROC, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER    
 FROM TTINTE_CNDE    
 WHERE CO_EMPR = @ISCO_EMPR    
 AND NU_CNTB_EMPR = @VNNU_CNTB_EMPR    
 AND CO_UNID_CNTB = @CSCO_UNID_CNTB    
 AND CO_OPRC_CNTB = @CSCO_OPRC_CNTB    
 AND NU_ANNO = @INPA_ANNO    
 AND NU_MESE = @INPA_MESE    
 AND NU_ASTO = @ISNU_ASTO     
Else    
 Select T1.NU_SECU, T1.FE_ASTO_CNTB, T1.CO_CNTA_EMPR, T2.DE_CNTA_EMPR, T1.TI_DOCU, T1.NU_DOCU,   
        T1.CO_MONE, T1.FA_CAMB_DIAR, T1.TI_OPER, T1.IM_MVTO_ORIG, T1.IM_MVTO_CNTB, T1.DE_GLOS,   
        T1.CO_AUXI_EMPR, CASE T2.ST_AUXI_EMPR WHEN 'S' THEN T3.NO_AUXI Else NULL END,   
        @ISNU_ASTO  
 From  #TTINTE_TESO T1
 INNER JOIN TMPLAN_EMPR T2
 ON  T2.CO_EMPR = @ISCO_EMPR           
 And T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR           
 And T2.NU_ANNO = 9999
 LEFT OUTER JOIN TMAUXI_EMPR T3  
 ON  T1.TI_AUXI_EMPR = T3.TI_AUXI_EMPR           
 And T1.CO_AUXI_EMPR = T3.CO_AUXI_EMPR           
 And T2.CO_EMPR = T3.CO_EMPR

RETURN    
    
/********************************* FIN ***********************************/



GO
